using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using trainstorm.InstanceClass;

namespace trainstorm.CoreClass
{
	public class InstanceManager
	{
		private List<Vector2> menuPosition;	//isinya {}
		private List<Texture2D> menu;		//isinya {background, middleParallax sekaligus screenmenu, buttons}
		private List<Texture2D> game;		//isinya {background, middleParallax, foreground}
		private List<Texture2D> obstacles;	//isinya {}
		private List<Texture2D> boss;		//isinya {}
		private List<Texture2D> bossATK;	//isinya {}
		private List<Texture2D> player;		//isinya {badan, betis, kaki}
		private List<float> bossDmg;		//isinya {HP, DMG, regenerateRate}

		public InstanceManager()
		{
			menu = new List<Texture2D>();
			game = new List<Texture2D>();
			obstacles = new List<Texture2D>();
			boss = new List<Texture2D>();
			bossATK = new List<Texture2D>();
			player = new List<Texture2D>();
		}
		internal void initManager(Microsoft.Xna.Framework.Content.ContentManager content)
		{
			addMenu(content.Load<Texture2D>("Background"));
			addGame(content.Load<Texture2D>("par_2a"));
			addGame(content.Load<Texture2D>("par_3a"));
			addBoss(content.Load<Texture2D>("boss"));
			addBossATK(content.Load<Texture2D>("spike"));
			addObstacles(content.Load<Texture2D>("bush"));
			addObstacles(content.Load<Texture2D>("frog"));
			addObstacles(content.Load<Texture2D>("spike"));
			addObstacles(content.Load<Texture2D>("totem"));
			addPlayer(content.Load<Texture2D>("char"));
			addPlayer(content.Load<Texture2D>("char_leg"));
			addPlayer(content.Load<Texture2D>("char_wheel"));
		}
		public void addMenu(Texture2D input)
		{
			menu.Add(input);
		}
		public void addGame(Texture2D input)
		{
			game.Add(input);
		}
		public void addObstacles(Texture2D input)
		{
			obstacles.Add(input);
		}
		public void addBoss(Texture2D input)
		{
			boss.Add(input);
		}
		public void addBossATK(Texture2D input)
		{
			bossATK.Add(input);
		}
		public void addPlayer(Texture2D input)
		{
			player.Add(input);
		}
		public List<Texture2D> getMenu()
		{
			return menu;
		}
		public List<Vector2> getMenuPos()
		{
			return menuPosition;
		}
		public List<Texture2D> getGame()
		{
			return game;
		}
		public List<Texture2D> getObstacles()
		{
			return obstacles;
		}
		public List<Texture2D> getBoss()
		{
			return boss;
		}
		public List<Texture2D> getBossATK()
		{
			return bossATK;
		}
		public List<Texture2D> getPlayer()
		{
			return player;
		}
		public Texture2D getPlayer(int i)
		{
			return player[i];
		}
		public Texture2D getMenu(int i)
		{
			return menu[i];
		}
		public Vector2 getMenuPos(int i)
		{
			return menuPosition[i];
		}
		public Texture2D getGame(int i)
		{
			return game[i];
		}
		public Texture2D getObstacles(int i)
		{
			return obstacles[i];
		}
		public Texture2D getBoss(int i)
		{
			return boss[i];
		}
		public Texture2D getBossATK(int i)
		{
			return bossATK[i];
		}
		public float getBossDmg(int i)
		{
			return bossDmg[i];
		}
	}
}
